#include <stdio.h>

/**
 * 对 pointer[x] 的理解：对前面的指针变量pointer做了偏移量x后解引用（偏移+解引用）
 * 但是指针是指针（指针类型），数组是数组（构造类型），不能混为一谈
 *
 * @return
 */
int main() {

    int a[5] = {2,7,9};
    int j;
    int *p;
    p = a;

    // case 1
//    j = *p++;	// j=*p; p++;
//    printf("a[0]=%d, j=%d, *p=%d\n", a[0], j, *p);
//    // result: a[0]=2, j=2, *p=7

    // case 2
//    j = (*p)++;	// j = *p; (*p)++;
//    printf("a[0]=%d, j=%d, *p=%d\n", a[0], j, *p);
//    // result: a[0]=3, j=2, *p=3

    // case 3
    j = *p++;	// j = *p; p++;
    j = p[0]++;	// j = p[0]; p[0]++;
    printf("a[0]=%d, j=%d, *p=%d\n", a[0], j, *p);
    // result: a[0]=2, j=7, *p=8
    printf("p[1]=%d\n", p[1]);
    // result: p[1]=9

    return 0;
}
